import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;

import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.SwingConstants;
import javax.swing.JComboBox;
import java.awt.Component;
import javax.swing.Box;
import javax.swing.JSeparator;
import javax.swing.JTextPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class VueRechercherParAuteur extends Vue {

	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private JButton buttonRechercher;
	private JButton buttonQuitter;
	private JComboBox comboBoxAuteur;
	private JTextArea textAreaOuvrages;
	private JTextArea textAreaArticles;
	private Periodique pe;
	private Parution pa;
	
	/**
	 * Create the frame.
	 */
	public VueRechercherParAuteur(Controleur controleur) {
		super(controleur);
		setTitle("Enregistrement d'une nouvelle Parution");
		//setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
		
		contentPane = new JPanel();
		setBounds(100, 100, 502, 501);
		
		this.addWindowListener (new WindowAdapter() {
			public void windowClosing (WindowEvent e) {
			getControleur().fermerVue(VueRechercherParAuteur.this);
			}
		});
		
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lblNewLabel = new JLabel("Auteur : ");
		lblNewLabel.setBounds(21, 75, 61, 15);
		contentPane.add(lblNewLabel);
		
		comboBoxAuteur = new JComboBox();
		comboBoxAuteur.setBounds(88, 73, 217, 19);
		contentPane.add(comboBoxAuteur);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(88, 197, 337, 87);
		contentPane.add(scrollPane);
		
		textAreaOuvrages = new JTextArea();
		scrollPane.setViewportView(textAreaOuvrages);
		
		JLabel lblOuvrages = new JLabel("Ouvrages:");
		lblOuvrages.setBounds(12, 197, 70, 15);
		contentPane.add(lblOuvrages);
		
		JLabel lblAritcles = new JLabel("Aritcles:");
		lblAritcles.setBounds(21, 296, 61, 15);
		contentPane.add(lblAritcles);
		
		JScrollPane scrollPane_1 = new JScrollPane();
		scrollPane_1.setBounds(88, 296, 337, 87);
		contentPane.add(scrollPane_1);
		
		textAreaArticles = new JTextArea();
		scrollPane_1.setViewportView(textAreaArticles);
		
		buttonQuitter = new JButton("Quitter");
		buttonQuitter.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getControleur().fermerVue(VueRechercherParAuteur.this);}
		});
		buttonQuitter.setBounds(198, 395, 107, 25);
		contentPane.add(buttonQuitter);
		
		buttonRechercher = new JButton("Rechercher");
		buttonRechercher.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
					getControleur().rechercheInfosAuteur((String)comboBoxAuteur.getSelectedItem());
				}
		});
		buttonRechercher.setBounds(198, 104, 107, 25);
		contentPane.add(buttonRechercher);
		 
	}
	
	public void alimente(HashMap<String,Auteur> auteurs) {
		comboBoxAuteur.addItem("");
		for (Auteur auteur : auteurs.values()) {
			comboBoxAuteur.addItem(auteur.getNom()+" "+auteur.getPrenom());
		}
	}
	
	public void alimenteInfos(HashMap<String, Ouvrage> ouvrages, HashMap<String, Article> articles){
		Message dialogue= new Message ("Non!!!");
		for ( Ouvrage ouvrage: ouvrages.values()){
			String isbn=ouvrage.getIsbn();

			GregorianCalendar date=ouvrage.getDateEdition();
			String titre=ouvrage.getTitre();
			textAreaOuvrages.append(isbn+", "+titre+" "+ESDate.ecrireDate(date));
		}
	}
	
	public void setEtat (int etat){
		switch (etat) {
		case initiale: {
			textAreaOuvrages.setEditable(false);
			textAreaArticles.setEditable(false);
			comboBoxAuteur.setEnabled(true);
			comboBoxAuteur.setEditable(true);
			break;
			}
		}
	}
}
